﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Xna.Framework.Graphics;

namespace ProjetS5
{
    public class DB_Ability : DatabaseTable
    {
        public DB_Ability()
        {
        }

        /// <summary>
        /// Abilities applied by ability.
        /// </summary>
        public List<DB_Effect> Effects { get; set; }

        /// <summary>
        /// Abitily's Name.
        /// </summary>
        public string Name { get; set; }

        /// <summary>
        /// Ability's description.
        /// </summary>
        public string Description { get; set; }

        /// <summary>
        /// Time to wait to reuse this ability.
        /// </summary>
        public TimeSpan Cooldown { get; set; }

        /// <summary>
        /// Time to wait to perform any new action.
        /// </summary>
        public TimeSpan GlobalCooldown { get; set; }

        /// <summary>
        /// Targets the ability can affect.
        /// </summary>
        public List<DB_FriendshipLevel> Target { get; set; }

        /// <summary>
        /// Cost in points of the ability.
        /// </summary>
        public Dictionary<ProjetS5.DB_PointBar, int> Cost { get; set; }

        /// <summary>
        /// Time before the ability launch.
        /// </summary>
        public TimeSpan CastTime { get; set; }

        /// <summary>
        /// Ability's max range.
        /// </summary>
        public short Range { get; set; }

        /// <summary>
        /// Required level to learn the ability.
        /// </summary>
        public byte RequiredLevel { get; set; }

        /// <summary>
        /// Ability's rank.
        /// </summary>
        public byte Rank { get; set; }

        /// <summary>
        /// Ability's icon.
        /// </summary>
        public Texture2D Icon { get; set; }
    }
}
